package log

import (
	"log/slog"
	"os"
	"time"
)

// init 函数在包初始化时执行，用于配置日志系统
func init() {
	// 创建一个新的 JSON 日志处理器，输出到标准输出 os.Stdout
	// HandlerOptions 设置了日志级别为 Debug，并添加源信息到日志中
	handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
		Level:     slog.LevelDebug, // 设置日志级别为 Debug，即记录所有级别的日志
		AddSource: true,            // 在日志中添加源文件信息
	})

	// 使用新创建的处理器初始化 slog 的根 Logger
	// 这样设置后，该包及子包中未单独设置 Logger 的地方都将使用这个默认的 Logger
	slog.SetDefault(slog.New(handler))
}

// Logger
type Logger struct {
	SlowThreshold time.Duration
}

// NewLogLogger
//
//	@return *Logger
func NewLogger() *Logger {
	return &Logger{
		SlowThreshold: 200 * time.Millisecond,
	}
}
